package com.rybbaby.tss.front.tssMemberPackage.entity;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * @author 雷春琼
 * @description 会员课时包
 * @createDate 2017-08-10 上午12:04:35
 */
@Entity
@Table(name = "view_tss_member_package")
@DynamicUpdate(true)
@DynamicInsert(true)
public class ViewTssMemberPackage implements Serializable {

    private static final long serialVersionUID = 54023606926800L;

    /**
     * 主键
     **/
    private String id;

    /**
     * 课时包名称
     */
    private String packageName;
    /**
     * 会员Id
     **/
    private String memberId;
    /**
     * 课时包Id
     **/
    private String packageId;

    /**
     * 创建时间
     **/
    private java.sql.Timestamp createTime;



    /**
     * 可用课时包
     **/
    private Integer usableTotal;

    /**
     * 合同编号
     **/
    private String contractNumber;

    /**
     * 客户姓名
     **/
    private java.lang.String name;

    /**
     * 客户昵称
     **/
    private java.lang.String nickName;

    /**
     * 出生日期
     **/
    private java.util.Date birthdayDate;
    /**
     * 联系电话
     **/
    private java.lang.String contactPhone;

    /**
     * 会员编号
     */
    private String number;

    /**
     * 类型
     */
    private Integer type;

    /**
     * 客户状态
     **/
    private java.lang.Integer stuStatus;

    /**
     * 转会员日期、报名日期
     */
    private Timestamp turnIntoMemberDate;

    /**
     * 延期次数
     */
    private Integer postponeTime;

    /**
     * 是否加减课时
     */
    private Boolean isAddSubtract;

    /** 是否报班 **/
    private Boolean isAttendClass;

    /**
     * 所属顾问
     */
    private String realName;

    /**
     * 当前操作人
     */
    private String userName;
    /**
     * 操作日期
     */
    private Timestamp updateTime;

    /**
     * 报名状态
     */
    private Integer applyStatus;
    /** 剩余总课时数 **/
    private Integer surplusTotalClassHours;

    /**  剩余激活课时 **/
    private  Integer surplusActivateClassHours;

    /** 激活剩余有效期 **/
    private Integer surplusActivateValidDate;

    /** 年龄 **/
    private Double age;

    /** 所属顾问Id **/
    private String empAdminUserId;

    /** 报班日期 **/
    private Timestamp attendTime;

    /**
     * 当前操作人id
     */
    private  String adminUserId;




    /**
     * 方法: 取得主键
     *
     * @return java.lang.String 主键
     */
    @Id
    @GeneratedValue(generator = "view_tss_member_packageIDGenerator", strategy = GenerationType.AUTO)
    @GenericGenerator(name = "view_tss_member_packageIDGenerator", strategy = "uuid")
    @Column(name = "id", nullable = false, length = 32)
    public String getId() {
        return this.id;
    }

    /**
     * 方法: 设置主键
     *
     * @param id 主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 方法: 取得会员Id
     *
     * @return java.lang.String 会员Id
     */
    @Column(name = "memberId", nullable = true, length = 32)
    public String getMemberId() {
        return this.memberId;
    }

    /**
     * 方法: 设置会员Id
     *
     * @param memberId 会员Id
     */
    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }


    /**
     * 方法: 取得课时包Id
     *
     * @return java.lang.String 课时包Id
     */
    @Column(name = "packageId", nullable = true, length = 32)
    public String getPackageId() {
        return this.packageId;
    }

    /**
     * 方法: 设置课时包Id
     *
     * @param packageId 课时包Id
     */
    public void setPackageId(String packageId) {
        this.packageId = packageId;
    }






    /**
     * 方法: 取得可用课时包
     *
     * @return java.lang.Integer 可用课时包
     */
    @Column(name = "usableTotal", nullable = true, length = 11)
    public Integer getUsableTotal() {
        return this.usableTotal;
    }

    /**
     * 方法: 设置可用课时包
     *
     * @param usableTotal 可用课时包
     */
    public void setUsableTotal(Integer usableTotal) {
        this.usableTotal = usableTotal;
    }



    /**
     * 方法: 取得创建时间
     *
     * @return java.sql.Timestamp 创建时间
     */
    @Column(name = "createTime", nullable = true, length = 19)
    public java.sql.Timestamp getCreateTime() {
        return this.createTime;
    }

    /**
     * 方法: 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(java.sql.Timestamp createTime) {
        this.createTime = createTime;
    }


    /**
     * 获取会员课时包类型
     *
     * @return
     */
    @Column(name = "type", nullable = true, length = 11)
    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 合同编号
     *
     * @return
     */
    @Column(name = "contractNumber", nullable = true, length = 100)
    public String getContractNumber() {
        return contractNumber;
    }

    /**
     * 合同编号
     *
     * @param contractNumber
     */
    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }


    /**
     * 方法: 取得客户姓名
     *
     * @return java.lang.String 客户姓名
     */
    @Column(name = "name", nullable = true, length = 12)
    public java.lang.String getName() {
        return this.name;
    }
    /**
     * 方法: 取得客户昵称
     *
     * @return java.lang.String 客户昵称
     */

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    /**
     * 方法: 设置客户姓名
     *
     * @param name 客户姓名
     */
    public void setName(java.lang.String name) {
        this.name = name;
    }

    /**
     * 方法: 取得出生日期
     *
     * @return java.util.Date 出生日期
     */
    @Column(name = "birthdayDate", nullable = true, length = 10)
    public java.util.Date getBirthdayDate() {
        return this.birthdayDate;
    }

    /**
     * 方法: 设置出生日期
     *
     * @param birthdayDate 出生日期
     */
    public void setBirthdayDate(java.util.Date birthdayDate) {
        this.birthdayDate = birthdayDate;
    }

    /**
     * 方法: 取得联系电话
     *
     * @return java.lang.String 联系电话
     */
    @Column(name = "contactPhone", nullable = true, length = 11)
    public java.lang.String getContactPhone() {
        return this.contactPhone;
    }

    /**
     * 方法: 设置联系电话
     *
     * @param contactPhone 联系电话
     */
    public void setContactPhone(java.lang.String contactPhone) {
        this.contactPhone = contactPhone;
    }


    /**
     * 会员编号
     *
     * @return
     */
    @Column(name = "number", nullable = true, length = 100)
    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }


    /**
     * 方法: 取得客户状态
     *
     * @return java.lang.Integer 客户状态
     */
    @Column(name = "stuStatus", nullable = true, length = 11)
    public java.lang.Integer getStuStatus() {
        return this.stuStatus;
    }

    /**
     * 方法: 设置客户状态
     *
     * @param stuStatus 客户状态
     */
    public void setStuStatus(java.lang.Integer stuStatus) {
        this.stuStatus = stuStatus;
    }


    /**
     * 转会员日期
     *
     * @return
     */
    @Column(name = "turnIntoMemberDate", nullable = true, length = 19)
    public Timestamp getTurnIntoMemberDate() {
        return turnIntoMemberDate;
    }

    public void setTurnIntoMemberDate(Timestamp turnIntoMemberDate) {
        this.turnIntoMemberDate = turnIntoMemberDate;
    }

    @Column(name = "postponeTime", nullable = true, length = 11)
    public Integer getPostponeTime() {
        return postponeTime;
    }

    public void setPostponeTime(Integer postponeTime) {
        this.postponeTime = postponeTime;
    }

    @Column(name = "isAddSubtract", nullable = true, length = 1)
    public Boolean getIsAddSubtract() {
        return isAddSubtract;
    }

    public void setIsAddSubtract(Boolean isAddSubtract) {
        this.isAddSubtract = isAddSubtract;
    }

    @Column(name = "realName", nullable = true, length = 32)
    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    @Column(name = "userName", nullable = true, length = 32)
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Column(name = "updateTime", nullable = true, length = 19)
    public Timestamp getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Timestamp updateTime) {
        this.updateTime = updateTime;
    }

    @Column(name = "applyStatus", nullable = true, length = 11)
    public Integer getApplyStatus() {
        return applyStatus;
    }

    public void setApplyStatus(Integer applyStatus) {
        this.applyStatus = applyStatus;
    }

    @Column(name = "packageName", nullable = true, length = 32)
    public String getPackageName() {
        return packageName;
    }

    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }
    @Column(name = "surplusTotalClassHours", nullable = true, length = 11)
    public Integer getSurplusTotalClassHours() {
        return surplusTotalClassHours;
    }

    public void setSurplusTotalClassHours(Integer surplusTotalClassHours) {
        this.surplusTotalClassHours = surplusTotalClassHours;
    }
    @Column(name = "surplusActivateClassHours", nullable = true, length = 11)
    public Integer getSurplusActivateClassHours() {
        return surplusActivateClassHours;
    }

    public void setSurplusActivateClassHours(Integer surplusActivateClassHours) {
        this.surplusActivateClassHours = surplusActivateClassHours;
    }
    @Column(name = "surplusActivateValidDate", nullable = true, length = 11)
    public Integer getSurplusActivateValidDate() {
        return surplusActivateValidDate;
    }

    public void setSurplusActivateValidDate(Integer surplusActivateValidDate) {
        this.surplusActivateValidDate = surplusActivateValidDate;
    }

    @Column(name = "isAttendClass", nullable = true, length = 1)
    public Boolean getIsAttendClass() {
        return isAttendClass;
    }

    public void setIsAttendClass(Boolean isAttendClass) {
        this.isAttendClass = isAttendClass;
    }

    @Column(name = "age", nullable= true)
    public Double getAge() {
        return age;
    }

    public void setAge(Double age) {
        this.age = age;
    }

    @Transient
    public Timestamp getAttendTime() {
        return attendTime;
    }

    public void setAttendTime(Timestamp attendTime) {
        this.attendTime = attendTime;
    }

    @Column(name = "adminUserId", nullable = true, length = 32)
    public String getAdminUserId() {
        return adminUserId;
    }

    public void setAdminUserId(String adminUserId) {
        this.adminUserId = adminUserId;
    }


    @Column(name = "empAdminUserId", nullable= true, length = 32)
    public String getEmpAdminUserId() {
        return empAdminUserId;
    }

    public void setEmpAdminUserId(String empAdminUserId) {
        this.empAdminUserId = empAdminUserId;
    }
}